import { useCookies } from '@vueuse/integrations/useCookies'
const Cookies = useCookies()
/**
 * window.localStorage 浏览器永久缓存
 * @method set 设置永久缓存
 * @method get 获取永久缓存
 * @method remove 移除永久缓存
 * @method clear 移除全部永久缓存
 */
export const useLocal = () => {
  return {
    // 设置永久缓存
    set<T>(key: string, val: T) {
      window.localStorage.setItem(key, JSON.stringify(val))
    },
    // 获取永久缓存
    get(key: string) {
      let json = <string>window.localStorage.getItem(key)
      return JSON.parse(json)
    },
    // 移除永久缓存
    remove(key: string) {
      window.localStorage.removeItem(key)
    },
    // 移除全部永久缓存
    clear() {
      window.localStorage.clear()
    },
  }
}

/**
 * window.sessionStorage 浏览器临时缓存
 * @method set 设置临时缓存
 * @method get 获取临时缓存
 * @method remove 移除临时缓存
 * @method clear 移除全部临时缓存
 */
export const useSession = () => {
  return {
    // 设置临时缓存
    set<T>(key: string, val: T) {
      window.sessionStorage.setItem(key, JSON.stringify(val))
    },
    // 获取临时缓存
    get(key: string) {
      let json = <string>window.sessionStorage.getItem(key)
      return JSON.parse(json)
    },
    // 移除临时缓存
    remove(key: string) {
      window.sessionStorage.removeItem(key)
    },
    // 移除全部临时缓存
    clear() {
      window.sessionStorage.clear()
    },
  }
}
/**
 * window.sessionStorage 浏览器临时缓存
 * @method set 设置临时缓存
 * @method get 获取临时缓存
 * @method remove 移除临时缓存
 * @method clear 移除全部临时缓存
 */
export const useCookie = () => {
  return {
    // 设置Cookies缓存
    set<T>(key: string, val: T) {
      Cookies.set(key, val)
    },
    // 获取Cookies缓存
    get(key: string) {
      return Cookies.get(key)
    },
    // 移除Cookies缓存
    remove(key: string) {
      Cookies.remove(key)
    },
  }
}
